Behavioral Design Patterns

In plain words

It is concerned with assignment of responsibilities between the objects. What makes them different from structural patterns is they don't just specify the structure but also outline the patterns for message passing/communication between them. Or in other words, they assist in answering "How to run a behavior in software component?"

Wikipedia says

In software engineering, behavioral design patterns are design patterns that identify common communication patterns between objects and realize these patterns. By doing so, these patterns increase flexibility in carrying out this communication.

  • [Chain of Responsibility]
  • [Command]
  • [Iterator]
  • [Mediator]
  • [Memento]
  • [Observer]
  • [Visitor]
  • [Strategy]
  • [State]
  • [Template Method]